入力値:構造体配列変数 InData [ I ] -> D : 直径( 倍精度実数 ) -> N : 本数
Imax 個のデータが入力された。
このデータは事前に直径の大きい順に並べ替えられているものとしている。
また、直径が同一のデータについては集約しておく。
直径が大きいものから順に横方向に一段筒積み上げて配置していく。
横方向に空間が残った場合はそこに次のデータを配置するが
2段以上重ねることが可能な場合は3段、4段と積み上げる。
積み上げる段数の最大値は前の配置データの直径を処理中のデータの直径で割った値である。
初心者が隙間なく配置するにはこの程度のアルゴリズムで十分です。
プロ級になれば隙間を探してそこに配置するという
目で見て行う処理を仮想空間の中でコンピュータに処理させることになり
処理を定型化する困難が待ち受けている。
CircleDraw 画面上に円を描く関数。
CirclePrint プリンタへ出力する場合。
X:作画する円の中心位置のX座標 Y:作画する円の中心位置のY座標 R:作画する円の半径
|
|
|